1. Field
This disclosure relates generally to data processing systems, and more specifically, to computationally efficient mechanisms for calculating a hash over information that is evaluated, at least partially, in a piecewise manner.
2. Related Art
Modern packet-routed communications involve the use of numerous specialized hardware and software techniques to parse packet header information and to direct flows of related packet information based on the header information parsed. In some cases, it can be desirable to calculate a hash over at least a portion of the information parsed from individual packet headers so as to deterministically distribute computations or flows in a way that maintains locality with respect to some aspect of the hashed over information. For example, hashes are commonly used in packet routing implementations that seek to achieve load balance by distributing packets over a range of processing queues, targets or other resources.
Processing speed can be an important figure of merit for many packet routing techniques and implementations. While processing techniques that seek to decompose packet header processing into steps that can be executed concurrently can enhance throughput and/or reduce latency, such decompositions may not mesh particularly well with a design requirement to deterministically calculate a hash over information coded in the packet header fields so processed. These challenges may be particularly acute when the processing is defined using a flexible, programmatically defined chain of filtering rules for which it is desirable to maintain determinism irrespective of evaluation order and/or allocation of decomposed computational steps to functional blocks.
Computationally efficient techniques are desired to facilitate deterministic hash generation and concurrent evaluation of packet header field filtering rules.
The use of the same reference symbols in different drawings indicates similar or identical items.